package com.lw.test;

import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * @author LW
 * @2021/9/24 10:32
 */
public class CreateStream {
    public static void main(String[] args) {
        /**Stream可以通过集合数组创建。
         * 通过 java.util.Collection.stream() 方法用集合创建流
         */
        //创建集合流
        List<String> list = Arrays.asList("a", "b", "c");
// 创建一个顺序流
        Stream<String> stream = list.stream();
// 创建一个并行流
        Stream<String> parallelStream = list.parallelStream();


        /**
         * 使用java.util.Arrays.stream(T[] array)方法用数组创建流
         */
        int[] array={1,3,5,6,8};
        IntStream streama = Arrays.stream(array);

        /**
         * 使用Stream的静态方法：of()、iterate()、generate()
         */
        Stream<Integer> streams = Stream.of(1, 2, 3, 4, 5, 6);

        Stream<Integer> stream2 = Stream.iterate(0, (x) -> x + 3).limit(4);
        stream2.forEach(System.out::println); // 0 2 4 6 8 10

        Stream<Double> stream3 = Stream.generate(Math::random).limit(3);
        stream3.forEach(System.out::println);
    }
}
